package com.ex3.client;

import com.ex3.caretaker.Caretaker;
import com.ex3.originator.Originator;

public class Client {
	public static void main(String[] args) {
		//多重检查点实例
		Originator o = new Originator();
		Caretaker c = new Caretaker(o);
		// 改变状态
		o.setState("state 0");
		// 建立一个检查点
		c.createMemento();
		// 改变状态
		o.setState("state 1");
		// 建立一个检查点
		c.createMemento();
		// 改变状态
		o.setState("state 2");
		// 建立一个检查点
		c.createMemento();
		// 改变状态
		o.setState("state 3");
		// 建立一个检查点
		c.createMemento();
		// 打印出所有检查点
		o.printStates();
		System.out.println("-----------------恢复检查点-----------------");
		// 恢复到第二个检查点
		c.restoreMemento(2);
		// 打印出所有检查点
		o.printStates();
	}
}
